package br.com.sovi.resources.cerca;

import java.util.List;

import org.openinsula.vulcano.orm.command.DaoCommand;
import org.openinsula.vulcano.orm.dao.query.DaoQuery;
import org.openinsula.vulcano.orm.dao.query.builder.DaoSelect;

import br.com.sovi.persistence.Dispositivo;
import br.com.sovi.persistence.Ponto;

@SuppressWarnings("serial")
public class GetPontosByCerca extends DaoCommand<List<Ponto>> {

	private String serial;

	public GetPontosByCerca(String serial) {
		super();
		this.serial = serial;
	}

	@Override
	public List<Ponto> execute() {
		DaoQuery<Dispositivo> query = new DaoSelect<Dispositivo>().all().from(Dispositivo.class).eq("serial", serial)
				.limit(1).toQuery();

		Dispositivo dispositivo = dao.findUnique(query);

		if (dispositivo.getCerca() != null) {
			if (dispositivo.getCerca().getPontos() != null) {
				dispositivo.getCerca().getPontos().size(); // to the lazy
			}
		} else {
			return null;
		}

		return dispositivo.getCerca().getPontos();
	}

}
